from django.shortcuts import render
from django import http

# Create your views here.
from django.views import View
import json
from .models import *
"""
添加书籍分类
url:bookcate
请求方式：post
请求参数：
name  str  必传  分类名称
返回响应：
code 0 errmsg 提示信息

展示书籍
url:bookcate
请求方式：get
请求参数：
无
返回响应：
code 0 errmsg 提示信息
"""
class BookcateView(View):
    def post(self,request):
        data=json.loads(request.body)
        name=data.get('name')
        if not all(name):
            return http.JsonResponse({
                'code':400,
                'errmsg':"信息错误"
            })
        Book_cate.objects.create(name=name)
        return http.JsonResponse({
            'code':0,
            'errmsg':"添加分类成功"
        })
    def get(self,request):
        bookscate=Book_cate.objects.all()
        book_list=[]
        for i in bookscate:
            book_list.append({
                'id':i.id,
                'name':i.name
            })
        return http.JsonResponse({
            'code':0,
            'errmsg':'ok',
            'book_cate':book_list
        })



"""
添加书籍：
url：bookpost
请求方式：post
请求参数：
name            str   必传    书名
img             str   必传    封面
author          str   必传    作者
synopsis        str   必传    简介
count_read      int   必传    阅读量
bookrack_count  int   必传    加入书架次数
is_vip          str   必传    书籍状态
cate_id         str   必传    分类id
返回响应：
code 0 errmsg  提示信息  

"""

class BooksPost(View):
    def post(self,request):
        data=json.loads(request.body)
        name=data.get('name')
        img=data.get('img')
        author=data.get('author')
        synopsis=data.get('synopsis')
        count_read=data.get('count_read')
        bookrack_count=data.get('bookrack_count')
        is_vip=data.get('is_vip')
        cate_id=data.get('cate_id')

        if not all([name,img,author,synopsis,count_read,bookrack_count,is_vip,cate_id]):
            return http.JsonResponse({
                'code':400,
                'errmsg':'参数不全'
            })
        Books.objects.create(
            name=name,
            img=img,
            author=author,
            synopsis=synopsis,
            count_read=count_read,
            bookrack_count=bookrack_count,
            is_vip=is_vip,
            cate_id=cate_id
        )
        return http.JsonResponse({
            'code':0,
            'errmsg':"添加书籍成功"
        })



"""
获取全部书籍：
url:bookget/<int:cate_id>
请求方式：get
请求参数：
cate_id     str    必传    分类id
返回响应：
code 0 errmsg 提示信息 books:books(
        name：书名
        img：封面
        author：作者
        synopsis：简介
        count_read：阅读量
        bookrack_count：加入书架次数
        is_vip：书籍状态
        cate_id：分类id
)
"""
class BooksGet(View):
    def get(self,request,id):
        try:
            ids=Book_cate.objects.get(id=id)
        except:
            return http.JsonResponse({
                'code':400,
                'errmsg':"未获取到id"
            })
        books=Books.objects.filter(cate=ids.id)
        print(books)
        books_list=[]
        for i in books:
            books_list.append({
                "name":i.name,
                "img":i.img,
                "author":i.author,
                "synopsis":i.synopsis,
                "count_read":i.count_read,
                "bookrack_count":i.bookrack_count,
                "is_vip":i.is_vip,
                "cate_id":i.cate_id,
            })
        return http.JsonResponse({
            'code':0,
            'errmsg':'ok',
            'books':books_list
        })







